import { mergeConfig } from 'vite'
import configArcoResolverPlugin from './plugin/arcoResolver'
import configCompressPlugin from './plugin/compress'
import configVisualizerPlugin from './plugin/visualizer'
import baseConfig from './vite.config.base'
/**
作用：
  配置生产环境构建选项
  优化构建输出
  配置生产环境插件
实现方式：
  使用 mergeConfig 合并基础配置
主要配置：
  构建输出配置（chunk 大小、文件命名）
  压缩配置（gzip）
  可视化分析插件
  Arco Design 解析器插件
  构建优化选项（minify、target、sourcemap）
 */
export default mergeConfig(
  {
    mode: 'production',
    plugins: [configCompressPlugin('gzip'), configVisualizerPlugin(), configArcoResolverPlugin()],
    build: {
      chunkSizeWarningLimit: 20480,
      reportCompressedSize: false,
      rollupOptions: {
        onwarn: () => {},
        output: {
          chunkFileNames: 'static/js/[name]-[hash].js',
          entryFileNames: 'static/js/[name]-[hash].js',
          assetFileNames: 'static/[ext]/[name]-[hash].[ext]',
        },
      },
      minify: 'esbuild',
      target: 'es2015',
      sourcemap: false,
    },
  },
  baseConfig
)
